'use strict';
module.exports = {
	/**
	 * XXXnameXXX
	 * @url admin/pages/files_mzgl/dy_tv_series/kh/oc_reviewvideo 前端调用的url参数地址
	 * data 请求参数
	 * @param {String} params1  参数1
	 */
	main: async (event) => {
		let {
			data = {}, userInfo, util, filterResponse, originalParam
		} = event;
		let {
			customUtil,
			uniID,
			config,
			pubFun,
			vk,
			db,
			_
		} = util;
		let {
			uid,
			lists
		} = data;
		let res = {
			code: 0,
			msg: ""
		};
		// 业务逻辑开始-----------------------------------------------------------
		console.log("lists====", lists);

		// 
		let Tv = await vk.baseDao.select({
			dbName: "dy_tv", // 表名
			getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
			getMain: true, // 是否只返回rows数据，默认false
			pageIndex: 1, // 当前第几页
			pageSize: -1, // 每页条数
			whereJson: { // 条件
				_id: lists[0].tv_id // 金额大于0
			},
			// 按_id降序 asc 升序 desc 降序 
			sortArr: [{
				name: "_id",
				type: "desc"
			}],
		});

		console.log("Tv===", Tv);


		let TvArr = await vk.baseDao.select({
			dbName: "dy_tv_series", // 表名
			getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
			getMain: true, // 是否只返回rows数据，默认false
			pageIndex: 1, // 当前第几页
			pageSize: -1, // 每页条数
			whereJson: { // 条件
				tv_id: lists[0].tv_id // 金额大于0
			},
			// 按_id降序 asc 升序 desc 降序 
			sortArr: [{
				name: "_id",
				type: "desc"
			}],
		});

		console.log("TvArr===", TvArr);


		let Tvdata = []
		for (let i = 0; i < lists.length; i += 1) {
			console.log(lists[i]);
			// console.log("e====",e);
			let TvSeries = await vk.baseDao.select({
				dbName: "dy_tv_series", // 表名
				getCount: true, // 是否需要同时查询满足条件的记录总数量，默认false
				pageIndex: 1, // 当前第几页
				pageSize: -1, // 每页条数
				whereJson: { // 条件
					title: lists[i].title
				},
				// 代表只显示_id和money字段
				fieldJson: {
					_id: false,
					title: true,
					seq: true,
					cover_list: true,
					open_video_id: true,
				},
				// 按_id降序 asc 升序 desc 降序 
				sortArr: [{
					name: "_id",
					type: "desc"
				}],
			});

			console.log("TvSeries===", TvSeries);
			Tvdata.push(TvSeries.rows)
		}
		console.log("Tvdata=====", Tvdata);

		// 转换数据格式
		const transformedData = Tvdata.map((episode, index) => {
			return {
				title: `第${episode[0].seq}集标题`,
				seq: episode[0].seq,
				cover_list: episode[0].cover_list.map((cover) => cover), // 如果 cover_list 是数组，直接复制
				open_video_id: episode[0].open_video_id,
			};
		});

		console.log("transformedData===", transformedData);


		let A = await vk.baseDao.selects({
			dbName: "a_appid",
			// 主表where条件
			whereJson: {
				appid: lists[0].ma_app_id
			},
		});

		console.log("A========", A);


		let appsecret = A.rows[0].appsecret

		console.log("lists[0].ma_app_id", lists[0].ma_app_id);

		// 获取accessonToken
		let urlA = "https://open.douyin.com/oauth/client_token/"
		const accessToken = await uniCloud.httpclient.request(urlA, {
			method: 'POST',
			headers: {
				"Content-Type": "application/json",
			},
			data: {
				client_key: lists[0].ma_app_id, // id
				client_secret: appsecret, // 密钥
				grant_type: "client_credential",
			},
			dataType: 'json', // 指定返回值为json格式，自动进行parseK
		})

		//创建短剧
		// 有效时间为 2 个小时
		let access_token = accessToken.data.data.access_token

		let episode_id_map = []

		//编辑短剧
		async function getMediaList(episode_info_list) {
			// 上传短剧信息至内容库
			let urlT = "https://open.douyin.com/api/playlet/v2/video/edit/"
			return await uniCloud.httpclient.request(urlT, {
				method: 'POST',
				headers: {
					"Content-Type": "application/json",
					"access-token": access_token,
				},
				data: {
					album_id: Tv[0].album_id,
					ma_app_id: lists[0].ma_app_id,
					episode_info_list: episode_info_list
				},
				dataType: 'text', // 指定返回值为json格式，自动进行parseK
			})
		}


		let tmp = await getMediaList(transformedData) //提交
		console.log('kk oc_reviewvideo 的数据', tmp);
		let jsonStr = tmp.data
		let version = JSON.parse(jsonStr).data.version
		console.log("jsonStr====version", version);

		await vk.baseDao.update({
			dbName: "dy_tv", // 表名
			whereJson: { // 条件
				_id: lists[0].tv_id,
			},
			dataJson: { // 需要修改的数据
				version: version,
			}
		});




		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}